mkdirrmdircpmvrmlnKromě výpisu obsahu adresářů a přechod mezi nimi je nezbytná další sada příkazů pro běžnou práci:
Důležité poznámky:
Čistě technicky Unixové systémy pro názvy nezakazují téměř žádný znak. To ale neznamená, že je v pořádku např. název @-@-@.
Soubor a adresář je v Unixových systémech totéž. Jinými slovy, vše jsou soubory – i adresáře. Z předchozí hodiny víme, že soubory jsou tedy i . (tento adresář) a .. (nadřazený adresář).
Držte se zavedených konvencí a pro názvy souborů a adresářů.
Nikdy nepoužívejte:
_ nebo pomlčkou -)Předejdete mnoha komplikacím -- hlavně sami sobě.
mkdir Make directories – vytvoří adresář v zadané cestě.
$ mkdir aaa
$ mkdir /cesta/k/adresari/aaa
S volbou -p vytvoří všechny adresáře v cestě (parents):
$ mkdir -p xxx/yyy/zzz
Vyzkoušejte:
$ mkdir logy
$ mkdir vykazy1 vykazy2
$ mkdir -p sestavy/leden
$ mkdir -p logy
První příkaz vytvoří adresář logy. Druhý vytvoří dva adresáře vykazy1 a vykazy2 najednou. Třetí vytvoří adresář sestavy a v něm podadresář leden. Čtvrtý se pokusí vytvořit již existující adresář, ale -p nevypíše chybové hlášení:
Vypište si současný stav adresáře. Adresář leden ve výpisu nebude – je zanořený. Vypíšete jej takto:
$ ls sestavy
rmdir Remove empty directories – odstraní adresář. Ten musí být prázdný.
$ rmdir skripty
TIP: Hromadné smazání všech prázdných adresářů v zadané cestě provedete příkazem:
$ find . -type d -exec rmdir {} \;
cp Příkaz cp (copy) slouží k vytvoření kopie souboru (adresáře). Obecná syntaxe je:
cp file_a file_b
cp soubor1 cesta
cp soubor1 cesta/file_b
file_a s názvem file_b.file_a v zadané cestě cesta beze změny názvu.file_a v zadané cestě cesta s novým názvem file_b.mv Příkaz mv (move) slouží k přesouvání nebo přejmenování souborů (nebo adresářů). Jeho používání je velmi podobné příkazu cp.
rm Příkaz rm (remove) odstraní (smaže) soubor(y). ⚠️ Terminál nemá koš. Neexistuje způsob, jak soubor po smazání obnovit!
$ rm file # jeden soubor
$ rm file1 file2 file3 # více souborů naráz
$ rm -i file # potvrzení (y nebo n)
ln Příkaz ln (link) je méně častým příkazem se specifickým významem. Připomíná "zástupce" z Windows, ale není to totéž. Zde je spíš jen pro úplnost a také proto, že se mohou objevit ve výpise adresáře, tak abyste rozuměli "co to je".
$ls -l /
total 60
lrwxrwxrwx 1 root root 7 Dec 7 2023 bin -> usr/bin
drwxr-xr-x 3 root root 4096 Sep 6 14:20 boot
drwxr-xr-x 18 root root 3360 Sep 26 19:59 dev
drwxr-xr-x 85 root root 4096 Oct 23 13:30 etc
drwxr-xr-x 204 root root 4096 Oct 23 13:30 home
lrwxrwxrwx 1 root root 30 Sep 6 14:19 initrd.img -> boot/initrd.img-6.1.0-25-amd64
lrwxrwxrwx 1 root root 30 Sep 6 14:19 initrd.img.old -> boot/initrd.img-6.1.0-23-amd64
lrwxrwxrwx 1 root root 7 Dec 7 2023 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Dec 7 2023 lib64 -> usr/lib64
drwx------ 2 root root 16384 Dec 7 2023 lost+found
...
Vytvářené odkazy mohou být buď:
pevné (tzv. hardlink – méně časté), což je výchozí režim příkazu. Pevné odkazy lze vytvářet jen v rámci stejného oddílu a jsou provázané s původním souborem. Data se po smazání původního souboru neztratí – k tomu dojde, teprve když jsou smazány i veškeré pevné odkazy. Obvykle nelze vytvářet pevné odkazy na adresáře. My tuto variantu využívat nebudeme.
symbolické (tzv. symlink – častější), což lze aktivovat přepínačem -s. Symbolický odkaz může ukazovat na soubory i adresáře, které nemusí být uložené na stejném souborovém systému. Tyto odkazy nejsou nijak provázané se soubory, na které ukazují, proto když smažete soubor, na který odkaz ukazuje, zbude vám odkaz na neexistující soubor.
$ ln -s /etc/apt/sources.list repo-symlink
$ ln -s /cesta/k/souboru /cesta/odkaz
💡 Všimněte si, že všechny výše uvedené operace: mkdir, rmdir, rm, cp, mv i ln lze provádět bez nutnosti se do daných adresářů přesouvat příkazem cd. V okenních systémech toto nelze.
Zjistěte, které znaky jsou v Unixových systémech z nějakého důvodu "vyhrazené" a nejde je použít pro názvy souborů nebo adresářů. Jako množinu znaků uvažujte pouze základní sadu ASCII tabulky.